﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Data;

namespace Himp.Outpatient
{
    /// <summary>
    /// 门诊排班计划
    /// </summary>
    public class OtpSchdPlanDto : FullAuditedEntityDto<Guid> ,IHasExtraProperties
    {
        /// <summary>
        /// 门诊排班分类
        /// </summary>
        public OtpSchdTypeDto OtpSchdType { get; set; }

        public string? OtpRgstTypeName
        {
            get
            {
                object otpRgstTypeName = string.Empty;

                if (ExtraProperties != null)
                {
                    ExtraProperties.TryGetValue("OtpRgstTypeName", out otpRgstTypeName);
                }

                return otpRgstTypeName==null?string.Empty: otpRgstTypeName.ToString();
            }
        }

        /// <summary>
        /// 科室编码
        /// </summary>
        public string DeptCodg { get; set; }

        /// <summary>
        /// 科室名称
        /// </summary>
        public string DeptName { get; set; }

        /// <summary>
        /// 医师编码
        /// </summary>
        public string? DrCodg { get; set; }

        /// <summary>
        /// 医师姓名
        /// </summary>
        public string? DrName { get; set; }

        /// <summary>
        /// 医师职称代码
        /// </summary>
        public string? DrProfttlCode { get; set; }

        /// <summary>
        /// 医师职称名称
        /// </summary>
        public string? DrProfttlName { get; set; }

        /// <summary>
        /// 开始时间
        /// </summary>
        public DateTime Begndt { get; set; }

        /// <summary>
        /// 停止时间
        /// </summary>
        public DateTime? Enddt { get; set; }

        /// <summary>
        /// 复诊标识
        /// </summary>
        public bool FollupFlag { get; set; }

        /// <summary>
        /// 建档标识
        /// </summary>
        public bool MedrecFlag { get; set; }

        /// <summary>
        /// 签到标识
        /// </summary>
        public bool SignFlag { get; set; }

        /// <summary>
        /// 分诊标识
        /// </summary>
        public bool TrgFlag { get; set; }

        /// <summary>
        /// 最后执行时间
        /// </summary>
        public DateTime? LastExeTime { get; set; }

        /// <summary>
        /// 时段
        /// </summary>
        public List<OtpSchdPeriodDto> OtpSchdPeriods { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public ExtraPropertyDictionary ExtraProperties { get; set; }
    }
}
